Pkg.add("GR")
INFO: Cloning cache of GR from https://github.com/jheinen/GR.jl.git INFO: Installing GR v0.22.0 INFO: Building GR INFO: Downloading pre-compiled GR 0.25.0 Ubuntu binary % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 8004k 100 8004k 0 0 103k 0 0:01:17 0:01:17 --:--:-- 128k INFO: Package database updated INFO: METADATA is out-of-date — you may not have the latest version of GR INFO: Use `Pkg.update()` to get the latest versions of your packages
Pkg.update("GR")
INFO: Updating METADATA... INFO: Updating cache of DiffEqBase... INFO: Updating cache of RecursiveArrayTools... INFO: Updating cache of DiffEqFinancial... INFO: Updating cache of StochasticDiffEq... INFO: Updating cache of DelayDiffEq... INFO: Updating cache of GenericSVD... INFO: Updating cache of MultiScaleArrays... INFO: Updating cache of FileIO... INFO: Updating cache of NLsolve... INFO: Updating cache of TensorFlow... INFO: Updating cache of OrdinaryDiffEq... INFO: Updating cache of LearnBase... INFO: Updating cache of DiffEqJump... INFO: Updating cache of DiffEqNoiseProcess... INFO: Updating cache of ParameterizedFunctions... INFO: Updating cache of DiffEqDevTools... INFO: Updating cache of PyCall... INFO: Computing changes... INFO: No packages to install, update or remove
using NeuralNetDiffEq
using Base.Test
#using Plots; plotly()
using GR; gr()
using DiffEqBase, ParameterizedFunctions
using DiffEqProblemLibrary, DiffEqDevTools
using Knet
INFO: Precompiling module GR.
WARNING: using GR.plot in module Main conflicts with an existing identifier.
function SODE_2(t,u)
du1 = -u[1]/5 + exp(-t/5)*cos(t)
du2 = -u[2]
[du1,du2]
end
WARNING: Method definition SODE_2(Any, Any) in module Main at In[2]:2 overwritten at In[14]:2.
SODE_2 (generic function with 1 method)
prob1 = ODEProblem(SODE_2,Float32[0.0,1.0],(Float32(0.0),Float32(2.0)))
DiffEqBase.ODEProblem{Array{Float32,1},Float32,false,#SODE_2,Void,UniformScaling{Int64}}(SODE_2,Float32[0.0,1.0],(0.0f0,2.0f0),nothing,UniformScaling{Int64} 1*I)
sol1 = solve(prob1,nnode(10),dt=0.2,iterations=1000)
(:iteration,100,:loss,0.056779962f0) (:iteration,200,:loss,0.025023488f0) (:iteration,300,:loss,0.011247986f0) (:iteration,400,:loss,0.010076475f0) (:iteration,500,:loss,0.0047588036f0) (:iteration,600,:loss,0.0035654646f0) (:iteration,700,:loss,0.002517598f0) (:iteration,800,:loss,0.0064811353f0) (:iteration,900,:loss,0.0049035056f0) (:iteration,1000,:loss,0.0032021091f0) 82.887497 seconds (268.48 M allocations: 12.598 GB, 3.83% gc time)
DiffEqBase.ODESolution{Any,2,Array{Array{Any,1},1},Void,Void,LinSpace{Float32},Array{Any,1},DiffEqBase.ODEProblem{Array{Float32,1},Float32,false,#SODE_2,Void,UniformScaling{Int64}},NeuralNetDiffEq.nnode,DiffEqBase.LinearInterpolation{LinSpace{Float32},Array{Array{Any,1},1}}}(Array{Any,1}[Any[0.0,1.0],Any[0.212861,0.799015],Any[0.397781,0.638066],Any[0.54676,0.508428],Any[0.655869,0.404192],Any[0.724561,0.320949],Any[0.752817,0.25408],Any[0.740966,0.199549],Any[0.692261,0.154956],Any[0.614865,0.119459]],nothing,nothing,linspace(0.0f0,2.0f0,10),Any[],DiffEqBase.ODEProblem{Array{Float32,1},Float32,false,#SODE_2,Void,UniformScaling{Int64}}(SODE_2,Float32[0.0,1.0],(0.0f0,2.0f0),nothing,UniformScaling{Int64} 1*I),NeuralNetDiffEq.nnode(10),DiffEqBase.LinearInterpolation{LinSpace{Float32},Array{Array{Any,1},1}}(linspace(0.0f0,2.0f0,10),Array{Any,1}[Any[0.0,1.0],Any[0.212861,0.799015],Any[0.397781,0.638066],Any[0.54676,0.508428],Any[0.655869,0.404192],Any[0.724561,0.320949],Any[0.752817,0.25408],Any[0.740966,0.199549],Any[0.692261,0.154956],Any[0.614865,0.119459]]),false,0,:Success)
plot(sol1)
function SODE_3(t,u)
du1 = -u[1]/5 + exp(-t/5)*cos(t)
du2 = -u[2]/5 + exp(-t/5)*cos(t)
[du1,du2]
end
SODE_3 (generic function with 1 method)
prob2 = ODEProblem(SODE_3,Float32[0.0,0.0],(Float32(0.0),Float32(2.0)))
DiffEqBase.ODEProblem{Array{Float32,1},Float32,false,#SODE_3,Void,UniformScaling{Int64}}(SODE_3,Float32[0.0,0.0],(0.0f0,2.0f0),nothing,UniformScaling{Int64} 1*I)
sol2 = solve(prob2,nnode(10),dt=0.2,iterations=1000)
(:iteration,100,:loss,0.0061395993f0) (:iteration,200,:loss,0.0018329715f0) (:iteration,300,:loss,0.0037576563f0) (:iteration,400,:loss,0.013650687f0) (:iteration,500,:loss,0.013106221f0) (:iteration,600,:loss,0.0030063726f0) (:iteration,700,:loss,0.016314188f0) (:iteration,800,:loss,0.006872811f0) (:iteration,900,:loss,0.0098809f0) (:iteration,1000,:loss,0.014690644f0) 75.637094 seconds (277.72 M allocations: 12.982 GB, 3.84% gc time)
DiffEqBase.ODESolution{Any,2,Array{Array{Any,1},1},Void,Void,LinSpace{Float32},Array{Any,1},DiffEqBase.ODEProblem{Array{Float32,1},Float32,false,#SODE_3,Void,UniformScaling{Int64}},NeuralNetDiffEq.nnode,DiffEqBase.LinearInterpolation{LinSpace{Float32},Array{Array{Any,1},1}}}(Array{Any,1}[Any[0.0,0.0],Any[0.202073,0.203002],Any[0.377527,0.379463],Any[0.518296,0.521317],Any[0.620764,0.624932],Any[0.684342,0.689747],Any[0.708203,0.714916],Any[0.692398,0.700331],Any[0.64122,0.650023],Any[0.564301,0.57341]],nothing,nothing,linspace(0.0f0,2.0f0,10),Any[],DiffEqBase.ODEProblem{Array{Float32,1},Float32,false,#SODE_3,Void,UniformScaling{Int64}}(SODE_3,Float32[0.0,0.0],(0.0f0,2.0f0),nothing,UniformScaling{Int64} 1*I),NeuralNetDiffEq.nnode(10),DiffEqBase.LinearInterpolation{LinSpace{Float32},Array{Array{Any,1},1}}(linspace(0.0f0,2.0f0,10),Array{Any,1}[Any[0.0,0.0],Any[0.202073,0.203002],Any[0.377527,0.379463],Any[0.518296,0.521317],Any[0.620764,0.624932],Any[0.684342,0.689747],Any[0.708203,0.714916],Any[0.692398,0.700331],Any[0.64122,0.650023],Any[0.564301,0.57341]]),false,0,:Success)
plot(sol2)
function SODE_4(t,u)
du1 = cos(t) + u[1]^2 + u[2] - (1+ t^2 + (sin(t))^2)
du2 = 2t - (1+t^2)*sin(t) + u[1]*u[2]
[du1,du2]
end
SODE_4 (generic function with 1 method)
prob4 = ODEProblem(SODE_4,Float32[0.0,1.0],(Float32(0.0),Float32(3.0)))
DiffEqBase.ODEProblem{Array{Float32,1},Float32,false,#SODE_4,Void,UniformScaling{Int64}}(SODE_4,Float32[0.0,1.0],(0.0f0,3.0f0),nothing,UniformScaling{Int64} 1*I)
sol4 = solve(prob4,nnode(10),dt=0.3,iterations=1000)
(:iteration,100,:loss,3.975262f0) (:iteration,200,:loss,0.7860724f0) (:iteration,300,:loss,1.1610736f0) (:iteration,400,:loss,1.3053416f0) (:iteration,500,:loss,1.3989285f0) (:iteration,600,:loss,0.6583102f0) (:iteration,700,:loss,0.22773407f0) (:iteration,800,:loss,0.47737747f0) (:iteration,900,:loss,0.17691173f0) (:iteration,1000,:loss,0.026611237f0) 116.649118 seconds (306.26 M allocations: 14.036 GB, 3.35% gc time)
DiffEqBase.ODESolution{Any,2,Array{Array{Any,1},1},Void,Void,LinSpace{Float32},Array{Any,1},DiffEqBase.ODEProblem{Array{Float32,1},Float32,false,#SODE_4,Void,UniformScaling{Int64}},NeuralNetDiffEq.nnode,DiffEqBase.LinearInterpolation{LinSpace{Float32},Array{Array{Any,1},1}}}(Array{Any,1}[Any[0.0,1.0],Any[0.32105,0.666146],Any[0.703647,0.777933],Any[1.0797,0.847113],Any[1.42686,0.862648],Any[1.72639,0.722651],Any[1.99813,0.478877],Any[2.26603,0.289139],Any[2.54188,0.421526],Any[2.829,1.45838]],nothing,nothing,linspace(0.0f0,3.0f0,10),Any[],DiffEqBase.ODEProblem{Array{Float32,1},Float32,false,#SODE_4,Void,UniformScaling{Int64}}(SODE_4,Float32[0.0,1.0],(0.0f0,3.0f0),nothing,UniformScaling{Int64} 1*I),NeuralNetDiffEq.nnode(10),DiffEqBase.LinearInterpolation{LinSpace{Float32},Array{Array{Any,1},1}}(linspace(0.0f0,3.0f0,10),Array{Any,1}[Any[0.0,1.0],Any[0.32105,0.666146],Any[0.703647,0.777933],Any[1.0797,0.847113],Any[1.42686,0.862648],Any[1.72639,0.722651],Any[1.99813,0.478877],Any[2.26603,0.289139],Any[2.54188,0.421526],Any[2.829,1.45838]]),false,0,:Success)
plot(sol4)